Many of today's servers are designed and interconnected to provide services to a large number of hosts. For example, servers may dispense, through a network, web pages, files, and/or database records to thousands of clients. To avoid periods of downtime, the servers are typically designed to circumvent problems, such as a link failure.
One technique for circumventing problems involves load balancing. In load balancing, a set of designated devices are used to relay and distribute messages from clients to many servers. By distributing the system load, the system may provide protection against individual server failures. For example, if a load balancing system distributes client requests to ten servers, when one server fails, the system may continue to operate by distributing client requests to the other nine servers.
In order to distribute client requests effectively, the load balancing system may keep track of servers that are “healthy” and that have failed. By transmitting health check packets to servers and waiting for response packets from the servers, the load balancing system may detect servers that are operational.